package com.ruoyi.project.modules.userDataAuth.service;

import java.util.List;

import com.ruoyi.project.modules.interfaceinfo.vo.InterfaceUser;
import com.ruoyi.project.modules.userDataAuth.domain.UserDataAuth;
import com.ruoyi.project.modules.userDataAuth.vo.DataAuthUserInfo;

/**
 * 用户数据权限Service接口
 * 
 * @author smallrain
 * @date 2021-11-09
 */
public interface IUserDataAuthService 
{
    /**
     * 查询用户数据权限
     * 
     * @param id 用户数据权限主键
     * @return 用户数据权限
     */
    public UserDataAuth selectUserDataAuthById(Long id);

    /**
     * 查询用户数据权限列表
     * 
     * @param userDataAuth 用户数据权限
     * @return 用户数据权限集合
     */
    public List<UserDataAuth> selectUserDataAuthList(UserDataAuth userDataAuth);

    /**
     * 新增用户数据权限
     * 
     * @param userDataAuth 用户数据权限
     * @return 结果
     */
    public int insertUserDataAuth(UserDataAuth userDataAuth);

    /**
     * 修改用户数据权限
     * 
     * @param userDataAuth 用户数据权限
     * @return 结果
     */
    public int updateUserDataAuth(UserDataAuth userDataAuth);

    /**
     * 批量删除用户数据权限
     * 
     * @param ids 需要删除的用户数据权限主键集合
     * @return 结果
     */
    public int deleteUserDataAuthByIds(String ids);

    /**
     * 删除用户数据权限信息
     * 
     * @param id 用户数据权限主键
     * @return 结果
     */
    public int deleteUserDataAuthById(Long id);

    List<UserDataAuth> selectUserDataAuthList2(UserDataAuth userDataAuth);

    List<UserDataAuth> unSelectObjectList(UserDataAuth userDataAuth);

    int cancelAll(String ids);

    int insertDataAuthUsers(String objectType, Long userId, String objectIds);

    List<InterfaceUser> selectInterfaceUser(Long objectId, String objectType);

    List<DataAuthUserInfo> selectDataAuthUserListByObjectType(String objectType);

    List<DataAuthUserInfo> selectUserAndDataSummaryList(String objectType);

    List<UserDataAuth> selectDataListByParams(UserDataAuth userDataAuth);

    void updateStatus(UserDataAuth userDataAuth);

}

